package fr.upmc.alasca.centreCalcul.interne.machinePhysique.machineVirtuelle.capteurTempsExecution.ports;

import fr.upmc.alasca.centreCalcul.interne.machinePhysique.MachinePhysique;
import fr.upmc.alasca.centreCalcul.interne.machinePhysique.machineVirtuelle.capteurTempsExecution.CapteurTempsExecution;
import fr.upmc.alasca.centreCalcul.interne.machinePhysique.machineVirtuelle.capteurTempsExecution.interfaces.CapteurTEMachineVI;
import fr.upmc.alasca.centreCalcul.objets.Requete;
import fr.upmc.components.ComponentI;
import fr.upmc.components.ports.AbstractInboundPort;

public class CapteurTEMachineVInboundPort extends AbstractInboundPort
		implements CapteurTEMachineVI {
	private static final long serialVersionUID = 1L;

	public CapteurTEMachineVInboundPort(String uri,
			ComponentI owner) throws Exception {
		super(uri, CapteurTEMachineVI.class, owner);
	}

	@Override
	public void recupererTERequete(Requete requete, String portUri) throws Exception {
		CapteurTempsExecution capteur = (CapteurTempsExecution) owner;
		capteur.recupererRequete(requete,portUri);
	}

	@Override
	public void abonnementCapteurTE(String uriControleurApplication)
			throws Exception {
		if (owner instanceof CapteurTempsExecution) {
			((CapteurTempsExecution)owner).abonnementCapteurTE(uriControleurApplication);
		}
		else if (owner instanceof MachinePhysique) {
			((MachinePhysique)owner).abonnementCapteurTE(uriControleurApplication, this.uri);
		}
		
	}
}
